﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Data.Common;
using Biblioteca.Utils;
using SERIX.Util;
using System.Data.OracleClient;
using Pms.Utils;

namespace SERIX
{
    public partial class UsuariosEscritorios : Seguranca
    {
        string _idt_esloc;

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            BtnIncluir.Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);
            BtnIncluirTodos.Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);
            BtnRemover.Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);
            BtnRemoverTodos.Enabled = _permissao.Equals(Constantes.PERM_MANUTENCAO);

            if (Request["idt_esloc"] != null)
            {
                _idt_esloc = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_esloc"]));
                CEscritoriosLocais esc = CEscritoriosLocais.PesquisaporCodigo(_idt_esloc, UsuAut.Login);
                lbMestre.Text = "Escritório: "+esc.Dsc_esloc;
            }
            else
            {
                Response.Redirect("EscritoriosLocais.aspx");
            }
            if (!Page.IsPostBack)
            {
                AtualizarListBoxs();
            }
        }

        private void AtualizarListBoxs()
        {
            lbTecnicos.Items.Clear();
            lbUsuarios.Items.Clear();
            BiblioSERIX.PreencherLb(ref lbTecnicos, CUsuariosEscritorios.ObterTecNaoAlocados(_idt_esloc,UsuAut.Login), "NOM_TEC", "IDT_TEC");
            BiblioSERIX.PreencherLb(ref lbUsuarios, CUsuariosEscritorios.ObterPorIDT_ESLOC(_idt_esloc, UsuAut.Login), "NOM_TEC", "IDT_TEC");
        }


        protected void BtnIncluir_Click(object sender, EventArgs e)
        {
            
            OracleCommand command = new OracleCommand();
            try
            {
                command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, UsuAut.Login, BiblioPMS.Demo);
                OracleTransaction trans = command.Connection.BeginTransaction();
                command.Transaction = trans;
                foreach (ListItem i in lbTecnicos.Items)
                {
                    if (i.Selected)
                    {
                        CUsuariosEscritorios usu = new CUsuariosEscritorios(_idt_esloc, i.Value);
                        usu.Inserir(command);
                    }
                }
                command.Transaction.Commit();
                AtualizarListBoxs();
            }
            catch (Exception)
            {
                command.Transaction.Rollback();
            }
        }

        protected void BtnIncluirTodos_Click(object sender, EventArgs e)
        {
            
            OracleCommand command = new OracleCommand();
            try
            {
                command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, UsuAut.Login, BiblioPMS.Demo);
                OracleTransaction trans = command.Connection.BeginTransaction();
                command.Transaction = trans;
                foreach (ListItem i in lbTecnicos.Items)
                {
                    CUsuariosEscritorios usu = new CUsuariosEscritorios(_idt_esloc, i.Value);
                    usu.Inserir(command);
                }
                command.Transaction.Commit();
                AtualizarListBoxs();
            }
            catch (Exception)
            {
                command.Transaction.Rollback();
            }

        }

        protected void BtnRemover_Click(object sender, EventArgs e)
        {
            foreach (ListItem i in lbUsuarios.Items)
            {
                if (i.Selected)
                {
                    
                    CUsuariosEscritorios usu = new CUsuariosEscritorios(_idt_esloc, i.Value);
                    usu.Excluir(UsuAut.Login);
                }
            }
            AtualizarListBoxs();
        }

        protected void BtnRemoverTodos_Click(object sender, EventArgs e)
        {
            foreach (ListItem i in lbUsuarios.Items)
            {
                
                CUsuariosEscritorios usu = new CUsuariosEscritorios(_idt_esloc, i.Value);
                usu.Excluir(UsuAut.Login);
            }
            AtualizarListBoxs();
        }
    }
}


